<?php

namespace app\admin\model;

class Dictionary extends ModelCore {
	// 主键
	protected $pk = 'id';
	// 数据表
	protected $table = '__DICTIONARY__';
	// 写入完成
	protected $auto = [ 
		'update_time' 
	];
	// 新增完成
	protected $insert = [ 
		'id',
		'create_time' 
	];
	// 更新完成
	protected $update = [ ];
	
	// 事件监听
	protected static function init() {
		// 写入前
		// self::beforeWrite ( function ($_Data) {} );
		// 写入后
		self::event('after_write', function ($_Data) {
			model('app\admin\logic\Dictionary')->_ResetCache();
		});
		// 新增前
		// self::event('before_insert', function ($_Data) {});
		// 新增后
		// self::event('after_insert', function ($_Data) {});
		// 更新前
		self::event('before_update', function($_Data) {
			if($_Data['p_id'] == $_Data['id']){
				$_Data->error = '上级不能为自身';
				return false;
			}
		});
		// 更新后
		// self::event('after_update', function($_Data) {});
		// 删除前
		self::beforeDelete ( function ($_Data) {
			if($_Data['p_id'] == 'abc20d7bde1df257f890e152af2e3470'){
				db('Dictionary')->where(['p_id'=>$_Data['id']])->delete();
			}
		});
		// 删除后
		self::event('after_delete', function ($_Data) {
			model('app\admin\logic\Dictionary')->_ResetCache();
		});
	}
	// 自动完成
	protected function setIdAttr($_Val) {
		if($_Val){
			return $_Val;
		}else{
			return _Guid ();
		}
	}
	protected function setCreateTimeAttr() {
		return time ();
	}
	protected function setUpdateTimeAttr() {
		return time ();
	}
	// 修改器
	// 获取器
	public function getCreateTimeAttr($value, $data) {
		return date ( "Y-m-d H:i:s", $value );
	}
	public function getUpdateTimeAttr($value, $data) {
		return date ( "Y-m-d H:i:s", $value );
	}
}